package com.youzan.open.sdk.gen.v3_0_0.model;

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import com.youzan.open.sdk.model.APIParams;
import com.youzan.open.sdk.model.FileParams;
import com.youzan.open.sdk.model.APIResult;
import com.youzan.open.sdk.model.ByteWrapper;
import java.util.List;
import java.util.Map;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonProperty;

public class YouzanMeiOrderDetailQueryResult implements APIResult {

    @JsonProperty(value = "order_detail")
    /**
     * 订单详情
     */
    private OrderDetailResp orderDetail;

    public void setOrderDetail(OrderDetailResp orderDetail) {
        this.orderDetail = orderDetail;
    }

    public OrderDetailResp getOrderDetail() {
        return this.orderDetail;
    }

    public static class Salesman {
            @JsonProperty(value = "id")
        /**
        * 销售人员id
        */
        private Long id;
            @JsonProperty(value = "name")
        /**
        * 销售人员名字
        */
        private String name;
    
            public void setId(Long id) {
            this.id = id;
        }

        public Long getId() {
            return this.id;
        }

            public void setName(String name) {
            this.name = name;
        }

        public String getName() {
            return this.name;
        }

        }

    public static class OrderItemDetailEntity {
            @JsonProperty(value = "item_alias")
        /**
        * 订单项别名
        */
        private String itemAlias;
            @JsonProperty(value = "item_id")
        /**
        * 订单项ID
        */
        private Long itemId;
            @JsonProperty(value = "goods_id")
        /**
        * 商品id
        */
        private Long goodsId;
            @JsonProperty(value = "index")
        /**
        * 订单项位置，更新订单项时需传入
        */
        private Long index;
            @JsonProperty(value = "is_pay")
        /**
        * 是否已支付
        */
        private Long isPay;
            @JsonProperty(value = "item_type")
        /**
        * 订单项类型。1, "服务" 2, "次卡" 3, "折扣卡" 4, "充值卡" 5, "充值" 6, "台卡二维码收款" 7, "直接收款" 8, "实物商品" 9, "余额充值"
        */
        private Long itemType;
            @JsonProperty(value = "num")
        /**
        * 数量
        */
        private Long num;
            @JsonProperty(value = "origin_price")
        /**
        * 原始价格
        */
        private Long originPrice;
            @JsonProperty(value = "promotion_card_no")
        /**
        * 优惠卡号
        */
        private String promotionCardNo;
            @JsonProperty(value = "promotion_id")
        /**
        * 优惠id
        */
        private Long promotionId;
            @JsonProperty(value = "promotion_name")
        /**
        * 优惠名称
        */
        private String promotionName;
            @JsonProperty(value = "promotion_price")
        /**
        * 优惠的价格
        */
        private Long promotionPrice;
            @JsonProperty(value = "promotion_type")
        /**
        * 0, "无优惠" 1, "次卡" 2, "折扣值" 3, "预付已付款" 5, "导入权益次数" 6, "赠送权益次数" 7, "导入权益折扣" 8, "赠送权益折扣" 11, "产品折扣（会员特权）" 21, "服务折扣（会员特权）" 30, "包邮", "等级权益包邮" 31, "抹零", "抹零" 40, "手动减价", "手动减价" 51, "减价优惠券", "优惠券" 52, "折扣优惠券", "优惠券" 100, "体验价", "体验价优惠" 101, "拼团", "拼团" 103, "同行打折", "同行优惠" 104, "同行免单", "同行优惠"
        */
        private Long promotionType;
            @JsonProperty(value = "promotion_value")
        /**
        * 优惠卡面值
        */
        private Long promotionValue;
            @JsonProperty(value = "real_pay")
        /**
        * 实际支付价格
        */
        private Long realPay;
            @JsonProperty(value = "salesmen")
        /**
        * 销售人员
        */
        private Salesman[] salesmen;
            @JsonProperty(value = "sku_id")
        /**
        * sku id
        */
        private Long skuId;
            @JsonProperty(value = "stage")
        /**
        * 0 预约，1 订单
        */
        private Long stage;
            @JsonProperty(value = "technicians")
        /**
        * 技师信息
        */
        private Technician[] technicians;
    
            public void setItemAlias(String itemAlias) {
            this.itemAlias = itemAlias;
        }

        public String getItemAlias() {
            return this.itemAlias;
        }

            public void setItemId(Long itemId) {
            this.itemId = itemId;
        }

        public Long getItemId() {
            return this.itemId;
        }

            public void setGoodsId(Long goodsId) {
            this.goodsId = goodsId;
        }

        public Long getGoodsId() {
            return this.goodsId;
        }

            public void setIndex(Long index) {
            this.index = index;
        }

        public Long getIndex() {
            return this.index;
        }

            public void setIsPay(Long isPay) {
            this.isPay = isPay;
        }

        public Long getIsPay() {
            return this.isPay;
        }

            public void setItemType(Long itemType) {
            this.itemType = itemType;
        }

        public Long getItemType() {
            return this.itemType;
        }

            public void setNum(Long num) {
            this.num = num;
        }

        public Long getNum() {
            return this.num;
        }

            public void setOriginPrice(Long originPrice) {
            this.originPrice = originPrice;
        }

        public Long getOriginPrice() {
            return this.originPrice;
        }

            public void setPromotionCardNo(String promotionCardNo) {
            this.promotionCardNo = promotionCardNo;
        }

        public String getPromotionCardNo() {
            return this.promotionCardNo;
        }

            public void setPromotionId(Long promotionId) {
            this.promotionId = promotionId;
        }

        public Long getPromotionId() {
            return this.promotionId;
        }

            public void setPromotionName(String promotionName) {
            this.promotionName = promotionName;
        }

        public String getPromotionName() {
            return this.promotionName;
        }

            public void setPromotionPrice(Long promotionPrice) {
            this.promotionPrice = promotionPrice;
        }

        public Long getPromotionPrice() {
            return this.promotionPrice;
        }

            public void setPromotionType(Long promotionType) {
            this.promotionType = promotionType;
        }

        public Long getPromotionType() {
            return this.promotionType;
        }

            public void setPromotionValue(Long promotionValue) {
            this.promotionValue = promotionValue;
        }

        public Long getPromotionValue() {
            return this.promotionValue;
        }

            public void setRealPay(Long realPay) {
            this.realPay = realPay;
        }

        public Long getRealPay() {
            return this.realPay;
        }

            public void setSalesmen(Salesman[] salesmen) {
            this.salesmen = salesmen;
        }

        public Salesman[] getSalesmen() {
            return this.salesmen;
        }

            public void setSkuId(Long skuId) {
            this.skuId = skuId;
        }

        public Long getSkuId() {
            return this.skuId;
        }

            public void setStage(Long stage) {
            this.stage = stage;
        }

        public Long getStage() {
            return this.stage;
        }

            public void setTechnicians(Technician[] technicians) {
            this.technicians = technicians;
        }

        public Technician[] getTechnicians() {
            return this.technicians;
        }

        }

    public static class Technician {
            @JsonProperty(value = "id")
        /**
        * 技师id
        */
        private Long id;
            @JsonProperty(value = "name")
        /**
        * 技师名字
        */
        private String name;
            @JsonProperty(value = "tag")
        /**
        * 技师标签
        */
        private String tag;
            @JsonProperty(value = "assigned")
        /**
        * 是不是客户指定
        */
        private Long assigned;
    
            public void setId(Long id) {
            this.id = id;
        }

        public Long getId() {
            return this.id;
        }

            public void setName(String name) {
            this.name = name;
        }

        public String getName() {
            return this.name;
        }

            public void setTag(String tag) {
            this.tag = tag;
        }

        public String getTag() {
            return this.tag;
        }

            public void setAssigned(Long assigned) {
            this.assigned = assigned;
        }

        public Long getAssigned() {
            return this.assigned;
        }

        }

    public static class OrderGiftItem {
            @JsonProperty(value = "gift_item_term_time")
        /**
        * 权益有效期时间（giftItemTermTime，xxxx前有效），0-永久有效, 单位毫秒
        */
        private Long giftItemTermTime;
            @JsonProperty(value = "gift_item_unique")
        /**
        * 赠送项目唯一值, 如：商品id
        */
        private String giftItemUnique;
            @JsonProperty(value = "gift_item_value")
        /**
        * 赠送权益值（giftItemValue, 赠送次数/数量）
        */
        private Long giftItemValue;
            @JsonProperty(value = "gift_type")
        /**
        * 赠送类型（giftType,1-次数/2-折扣/3-余额/4-积分/5-券/6-会员卡/7-服务/8-产品）
        */
        private Long giftType;
    
            public void setGiftItemTermTime(Long giftItemTermTime) {
            this.giftItemTermTime = giftItemTermTime;
        }

        public Long getGiftItemTermTime() {
            return this.giftItemTermTime;
        }

            public void setGiftItemUnique(String giftItemUnique) {
            this.giftItemUnique = giftItemUnique;
        }

        public String getGiftItemUnique() {
            return this.giftItemUnique;
        }

            public void setGiftItemValue(Long giftItemValue) {
            this.giftItemValue = giftItemValue;
        }

        public Long getGiftItemValue() {
            return this.giftItemValue;
        }

            public void setGiftType(Long giftType) {
            this.giftType = giftType;
        }

        public Long getGiftType() {
            return this.giftType;
        }

        }

    public static class OrderDetailResp {
            @JsonProperty(value = "type")
        /**
        * 订单类型。0:"普通",1,:"开卡购卡",2,:"充值",3,:"直接收款",4:"台卡",8:"产品订单"。默认是0.
        */
        private Long type;
            @JsonProperty(value = "source_type")
        /**
        * 1, "H5"  2, "买家小程序"  3, "PC"  4, "Android Pad"  5, "iPad"  6, "Android POS"  7, "Android Phone"
        */
        private Long sourceType;
            @JsonProperty(value = "remark")
        /**
        * 备注
        */
        private String remark;
            @JsonProperty(value = "order_no")
        /**
        * 订单编号，修改订单时填写
        */
        private String orderNo;
            @JsonProperty(value = "order_items")
        /**
        * 订单项详情
        */
        private OrderItemDetailEntity[] orderItems;
            @JsonProperty(value = "order_gift_items")
        /**
        * 订单赠送项
        */
        private OrderGiftItem[] orderGiftItems;
            @JsonProperty(value = "dept_id")
        /**
        * 店铺ID
        */
        private String deptId;
    
            public void setType(Long type) {
            this.type = type;
        }

        public Long getType() {
            return this.type;
        }

            public void setSourceType(Long sourceType) {
            this.sourceType = sourceType;
        }

        public Long getSourceType() {
            return this.sourceType;
        }

            public void setRemark(String remark) {
            this.remark = remark;
        }

        public String getRemark() {
            return this.remark;
        }

            public void setOrderNo(String orderNo) {
            this.orderNo = orderNo;
        }

        public String getOrderNo() {
            return this.orderNo;
        }

            public void setOrderItems(OrderItemDetailEntity[] orderItems) {
            this.orderItems = orderItems;
        }

        public OrderItemDetailEntity[] getOrderItems() {
            return this.orderItems;
        }

            public void setOrderGiftItems(OrderGiftItem[] orderGiftItems) {
            this.orderGiftItems = orderGiftItems;
        }

        public OrderGiftItem[] getOrderGiftItems() {
            return this.orderGiftItems;
        }

            public void setDeptId(String deptId) {
            this.deptId = deptId;
        }

        public String getDeptId() {
            return this.deptId;
        }

        }


}